Prog.Arch.Ass.
Diario
Assaggi

13/5/2002

Abbiamo già visto come si fà a trasmettere dei dati tridimensionali a distanza (listato di un cubo9, ed abbiamo individuato due famiglie di domande interesanti:
  • Capire un formalismo forte per generare oggetti 3d
  • Trovare un sistema intelligente per trasmettere, gestire ed organizzare le informazoni.
In questa lezione parleremo solo del secondo punto.

Con i metodi di trasmissione visti sin ora (shape) se volessimo disegnare piu di un cubo dovremmo avere tanti listati quanti sono i cubi disegnati.

 

Come si può avere un sistema più efficiente?

La soluzione è basata su la creazione di un BLOCCO BASE  (oggetto), nel quale si descrive il cubo come si faceva con le shape, che corrisponde ad un pacchetto informativo.

Una volta inviato il BLOCCO BASE non sarà più necessario trasmettere di nuovo le informazioni al completo per posizionarlo diversamente, basterà inviare il nuovo punto di applicazione e le eventuali modifiche (scale, rotate...).

Passare al BLOCCO BASE facilita la trasmissione perchè permette di non inviare molteplici listati per posizionare l'elemento più volte.

Questo è un salto logico di enorme importanza, che apre una miriade di conseguenze importantissime in tante aree, e fà guadagnare un livello di efficienza molto forte.

      è più EFFICIENTE 

      è più INTELLIGENTE 

      è più INTERATTIVO

  • Si stabilisce una sintassi
  • Si possono creare delle librerie
  • Si creano mondi complessi
  • Si crea una discendenza tra gli oggetti (blocco madre/figli)
Questa strutturazione acquisisceun livello di dinamica logica interna "esplosiva", una possibilità di mutamento molto più efficiente, si crea una gerarchia di oggetti.

INSTANCE = istanza = ricorrenza di un entità

Si avranno quindi tante instance, tante ricorrenze, differenti tra loro solo per il punto di applicazione o per eventuali modifiche come rotazioni o passaggi di scala; non è possibile modificare la struttura geometrica di un instans, a meno che non se ne rompe la relazione con l'origine, con il blocco base.

Cubo Gerarchico
0; object OggettoCubo
1; origin 0.000 0.000 0.000
2; rotate 0.000 0.000 0.000
3; scale 1.000 1.000 1.000
4; return 0.000 0.000 0.000

:OggettoCubo
5; pen 0.000 0.000 0.000
6; fill 65535.000 65535.000 65535.000
7; shape -191.500 57.500 50.000
8; normal 0.000 0.000 -1.000
9; polygon -305.000 199.000 0.000
10; polygon -78.000 199.000 0.000
11; polygon -78.000 -84.000 0.000
12; polygon -305.000 -84.000 0.000
13; normal 0.000 0.000 1.000
14; polygon -305.000 -84.000 100.000
15; polygon -78.000 -84.000 100.000
16; polygon -78.000 199.000 100.000
17; polygon -305.000 199.000 100.000
18; normal 0.000 1.000 0.000
19; polygon -305.000 199.000 0.000
20; polygon -305.000 199.000 100.000
21; polygon -78.000 199.000 100.000
22; polygon -78.000 199.000 0.000
23; normal 1.000 0.000 0.000
24; polygon -78.000 199.000 0.000
25; polygon -78.000 199.000 100.000
26; polygon -78.000 -84.000 100.000
27; polygon -78.000 -84.000 0.000
28; normal 0.000 -1.000 0.000
29; polygon -78.000 -84.000 0.000
30; polygon -78.000 -84.000 100.000
31; polygon -305.000 -84.000 100.000
32; polygon -305.000 -84.000 0.000
33; normal -1.000 0.000 0.000
34; polygon -305.000 -84.000 0.000
35; polygon -305.000 -84.000 100.000
36; polygon -305.000 199.000 100.000
37; polygon -305.000 199.000 0.000
38; end 0.000 0.000 0.000
39; return 0.000 0.000 0.000

5 Cubi Gerarchici
0; object OggettoCubo
1; origin 0.000 0.000 0.000
2; rotate 0.000 0.000 0.000
3; scale 1.000 1.000 1.000
4; object OggettoCubo
5; origin -269.448 -167.075 0.000
6; rotate 0.000 0.000 0.000
7; scale 0.176 0.141 1.000
8; object OggettoCubo
9; origin 164.264 10.509 0.000
10; rotate 0.000 0.000 0.000
11; scale 0.542 0.435 1.000
12; object OggettoCubo
13; origin 72.264 -187.491 0.000
14; rotate 14.690 17.448 4.495
15; scale 0.542 0.435 1.000
16; object OggettoCubo
17; origin 374.155 75.657 0.000
18; rotate 6.812 15.612 23.935
19; scale 0.670 0.516 1.000
20; return 0.000 0.000 0.000


Quando si lavora con questo tipo di sistemi è molto importante avere una struttura sintattica preesistente, o meglio è d'aiuto avere una progettualità minima, un'organizzazione minima di quello che dobbiamo fare:

UN PROGETTO DEL PROGETTO

es. di gerarchia
 

A) spazi esterni
B) aggregazioni
C) volumi primari
D) accessori
E) vol. secondari
F) elementi 

Creato un oggetto A, un volume C ed un accessorio D ... è possibile creare una serie di aggregazioni B, una diversa dall'altra, ottenendo così un passaggio gerarchico inserendo un instance in un altra instance.
Se si modifica il blocco base si modificano tutte le sue ricorrenze, in qualsiasi livello si trovino; se si aggiunge un elemento al blocco base, o si aggiunge l'instance di un altro oggetto al blocco base, si aggiungono elementi a tutte le ricorreze del blocco base considerato.
Si tratta quindi di strutturare i dati in maniera dinamica, in modo da acquisire dei livelli di efficienza, dei livelli di intelligenza e dei livelli di interattività.



Leggere uno dei seguenti scritti e commentare  "L'esperienza delle nicchie" e "Strutture gerarchiche nel Danteum"

Ospite GIANNI RANAULO http://www.ranaulo.com/